Necromancer - Vulnhub - Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
Wireshark (implied)
nc (netcat)
base64
Online Hash Cracker
nmap
nikto
gobuster
strings
binwalk
unzip
cat
gdb
wget
file
bzip2
tar
wpaclean
aircrack-ng
snmp-check
snmpwalk
snmpset
hydra
ssh
find
id
sudo
ls
cd

Inhaltsverzeichnis

Reconnaissance

Wir beginnen mit der Identifizierung des Ziels im Netzwerk. Zu diesem Zeitpunkt scheinen keine TCP-Ports offen zu sein, was ungewöhnlich ist.

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.125	08:00:27:de:4e:19	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` sendet ARP-Anfragen ins lokale Netzwerk, um aktive Geräte zu finden.

Bewertung: Ein aktiver Host wurde unter der IP-Adresse `192.168.2.125` gefunden. Die MAC-Adresse (`08:00:27:de:4e:19`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin.

Empfehlung (Pentester): Ziel-IP `192.168.2.125` notieren. Da ein erster Nmap-Scan (nicht im Log, aber impliziert) keine offenen TCP-Ports zeigt, ist passive Netzwerkanalyse (Wireshark) oder das Warten auf Broadcasts/Traffic vom Ziel eine Option.
Empfehlung (Admin):** Keine Aktion erforderlich.

Ein Hostname wird zur lokalen Hosts-Datei hinzugefügt.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
 192.168.2.125	necromancer.vln
                     

Analyse: Der Hostname `necromancer.vln` wird der IP `192.168.2.125` in der lokalen `/etc/hosts`-Datei zugeordnet.

Bewertung: Erleichtert die Ansprache des Ziels.

Empfehlung (Pentester): Den definierten Hostnamen verwenden.
Empfehlung (Admin):** Keine Aktion erforderlich.

Initial Puzzle (UDP & Port Knocking)

Da keine TCP-Ports offen scheinen, untersuchen wir den Netzwerkverkehr oder lauschen auf eingehende Verbindungen, was zu einem initialen Rätsel führt.

Passive Netzwerkanalyse mit Wireshark (oder Beobachtung eingehender Verbindungen):

Frame 4951: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
Ethernet II, Src: SamsungE_96:f6:3a (80:47:86:96:f6:3a), Dst: PcsCompu_de:4e:19 (08:00:27:de:4e:19)
Internet Protocol Version 4, Src: 192.168.2.103, Dst: 192.168.2.125
Transmission Control Protocol, Src Port: 4444, Dst Port: 35388, Seq: 1, Ack: 1, Len: 0
    Source Port: 4444
    Destination Port: 35388
    [Stream index: 4808]
    [Conversation completeness: Incomplete (37)]
    [TCP Segment Len: 0]
    Sequence Number: 1    (relative sequence number)
    Sequence Number (raw): 0
    [Next Sequence Number: 1    (relative sequence number)]
    Acknowledgment Number: 1    (relative ack number)
    Acknowledgment number (raw): 355785274
    0101 .... = Header Length: 20 bytes (5)
    Flags: 0x014 (RST, ACK) 
    Window: 0
    [Calculated window size: 0]
    [Window size scaling factor: -1 (unknown)]
    Checksum: 0x9e94 [unverified]
    [Checksum Status: Unverified]
    Urgent Pointer: 0
    [Timestamps]
    [SEQ/ACK analysis]
                    

Analyse: Wireshark (oder ein ähnliches Tool) fängt ein TCP RST/ACK-Paket vom Ziel (`192.168.2.125`) zu einem zufälligen Host im Netzwerk (`192.168.2.103`) auf Port 4444. Ein RST/ACK wird typischerweise gesendet, um eine nicht existierende oder unerwartete Verbindung zurückzusetzen.

Bewertung: Dies ist ein starker Hinweis! Das Zielsystem sendet aktiv ein Reset-Paket auf Port 4444. Dies könnte ein Hinweis auf eine erwartete eingehende Verbindung auf diesem Port sein, möglicherweise als Teil eines Rätsels oder eines Port-Knocking-Mechanismus.

Empfehlung (Pentester): Starten Sie einen Listener auf Port 4444 auf Ihrer Maschine (`nc -lvnp 4444`), um zu sehen, ob das Zielsystem versucht, sich zu verbinden oder Daten zu senden.
Empfehlung (Admin):** Untersuchen Sie den Ursprung dieses ungewöhnlichen Netzwerkverkehrs auf dem Zielsystem.

Starten eines Netcat-Listeners auf Port 4444:

┌──(root㉿Cybermaschine)-[~] └─# nc -lvnp 4444
Listening on 0.0.0.0 4444
┌──(root㉿Cybermaschine)-[~] └─# nc -vv -lp 4444
Listening on 0.0.0.0 4444
Connection received on necromancer.vln 28868
V2VsY29tZSENCg0KWW91IGZpbmQgeW91cnNlbGYgc3RhcmluZyB0b3dhcmRzIHRoZSBob3Jpem9uLCB3aXRoIG5vdGhpbmcgYnV0IHNpbGVuY2Ugc3Vycm91bmRpbmcgeW91Lg0KWW91IGxvb2sgZWFzdCwgdGhlbiBzb3V0aCwgdGhlbiB3ZXN0LCBhbGwgeW91IGNhbiBzZWUgaXMgYSBncmVhdCB3YXN0ZWxhbmQgb2Ygbm90aGluZ25lc3MuDQoNClR1cm5pbmcgdG8geW91ciBub3J0aCB5b3Ugbm90aWNlIGEgc21hbGwgZmxpY2tlciBvZiBsaWdodCBpbiB0aGUgZGlzdGFuY2UuDQpZb3Ugd2FsayBub3J0aCB0b3dhcmRzIHRoZSBmbGlja2VyIG9mIGxpZ2h0LCBvbmx5IHRvIGJlIHN0b3BwZWQgYnkgc29tZSB0eXBlIG9mIGludmlzaWJsZSBiYXJyaWVyLiAgDQoNClRoZSBhaXIgYXJvdW5kIHlvdSBiZWdpbnMgdG8gZ2V0IHRoaWNrZXIsIGFuZCB5b3VyIGhlYXJ0IGJlZ2lucyB0byBiZWF0IGFnYWluc3QgeW91ciBjaGVzdC4gDQpZb3UgdHVybiB0byB5b3VyIGxlZnQuLiB0aGVuIHRvIHlvdXIgcmlnaHQhICBZb3UgYXJlIHRyYXBwZWQhDQoNCllvdSBmdW1ibGUgdGhyb3VnaCB5b3VyIHBvY2tldHMuLiBub3RoaW5nISAgDQpZb3UgbG9vayBkb3duIGFuZCBzZWUgeW91IGFyZSBzdGFuZGluZyBpbiBzYW5kLiAgDQpEcm9wcGluZyB0byB5b3VyIGtuZWVzIHlvdSBiZWdpbiB0byBkaWcgZnJhbnRpY2FsbHkuDQoNCkFzIHlvdSBkaWcgeW91IG5vdGljZSB0aGUgYmFycmllciBleHRlbmRzIHVuZGVyZ3JvdW5kISAgDQpGcmFudGljYWxseSB5b3Uga2VlcCBkaWdnaW5nIGFuZCBkaWdnaW5nIHVudGlsIHlvdXIgbmFpbHMgc3VkZGVubHkgY2F0Y2ggb24gYW4gb2JqZWN0Lg0KDQpZb3UgZGlnIGZ1cnRoZXIgYW5kIGRpc2NvdmVyIGEgc21hbGwgd29vZGVuIGJveC4gIA0KZmxhZzF7ZTYwNzhiWIxYWFjTE1ZDExYjlmZDU5NzkxMDMwYmZ9IGlzIGVuZ3JhdmVkIG9uIHRoZSBsaWQuDQoNCllvdSBvcGVuIHRoZSBib3gsIGFuZCBmaW5kIGEgcGFyY2htZW50IHdpdGggdGhlIGZvbGxvd2luZyB3cml0dGVuIG9uIGl0LiAiQ2hhbnQgdGhlIHN0cmluZyBvZiBmbGFnMSAtIHU2NjYi...
                    

Analyse: Ein Netcat-Listener wird auf Port 4444 gestartet. Nach kurzer Zeit empfängt er eine Verbindung vom Zielsystem (`necromancer.vln`) und eine große Menge an Base64-kodierten Daten.

Bewertung: Unsere Vermutung war korrekt. Das Zielsystem sendet Daten an Port 4444. Der Inhalt ist Base64-kodiert.

Empfehlung (Pentester): Dekodieren Sie den empfangenen Base64-Text, um die Nachricht und die darin enthaltenen Hinweise zu verstehen.
Empfehlung (Admin):** Untersuchen Sie den Prozess auf dem Zielsystem, der diese Verbindung und Datenübertragung initiiert.

Dekodieren des Base64-Textes:

Welcome!

You find yourself staring towards the horizon, with nothing but silence surrounding you.
You look east, then south, then west, all you can see is a great wasteland of nothingness.

Turning to your north you notice a small flicker of light in the distance.
You walk north towards the flicker of light, only to be stopped by some type of invisible barrier.

The air around you begins to get thicker, and your heart begins to beat against your chest.
You turn to your left.. then to your right!  You are trapped!

You fumble through your pockets.. nothing!
You look down and see you are standing in sand.
Dropping to your knees you begin to dig frantically.

As you dig you notice the barrier extends underground!
Frantically you keep digging and digging until your nails suddenly catch on an object.

You dig further and discover a small wooden box.
flag1{e6078b9b1aac915d11b9fd59791030bf} is engraved on the lid.

You open the box, and find a parchment with the following written on it. "Chant the string of flag1 - u666"
                     

Analyse: Der Base64-Text wird dekodiert und ergibt eine narrative Beschreibung sowie zwei wichtige Hinweise: die erste Flagge (`flag1{e6078b9b1aac915d11b9fd59791030bf}`) und die Anweisung, den Flaggen-String an den UDP-Port (`-u`) 666 zu senden ("chant").

Bewertung: Dies ist ein klassisches CTF-Rätsel. Wir haben die erste Flagge und eine klare Anweisung für den nächsten Schritt erhalten. Der Flaggen-String selbst (`e60...bf`) sieht wie ein MD5-Hash aus.

Empfehlung (Pentester): 1. Versuchen Sie, den MD5-Hash (`e6078b9b1aac915d11b9fd59791030bf`) online zu knacken (z.B. auf Crackstation). 2. Senden Sie das Ergebnis des Hash-Crackings an den UDP-Port 666 des Ziels (`echo "" | nc -u 192.168.2.125 666`).
Empfehlung (Admin):** Solche Rätsel sind spezifisch für CTFs und haben normalerweise keine direkte Entsprechung in realen Systemen, deuten aber auf ungewöhnliche offene Ports oder Dienste hin.

Knacken des MD5-Hashes:

Hash: e6078b9b1aac915d11b9fd59791030bf
Type: md5
Result: opensesame
                     

Analyse: Der MD5-Hash wird mittels eines Online-Dienstes geknackt.

Bewertung: Das Klartext-Passwort ist `opensesame`.

Empfehlung (Pentester): Senden Sie "opensesame" an UDP Port 666.
Empfehlung (Admin):** Verwenden Sie keine MD5-Hashes für Passwörter.

Senden des Passworts an UDP Port 666:

┌──(root㉿Cybermaschine)-[~] └─# echo "opensesame" | nc -u 192.168.2.125 666

A loud crack of thunder sounds as you are knocked to your feet!

Dazed, you start to feel fresh air entering your lungs.

You are free!

In front of you written in the sand are the words:

flag2{c39cd4df8f2e35d20d92c2e44de5f7c6}

As you stand to your feet you notice that you can no longer see the flicker of light in the distance.

You turn frantically looking in all directions until suddenly, a murder of crows appear on the horizon.

As they get closer you can see one of the crows is grasping on to an object. As the sun hits the object, shards of light beam from its surface.

The birds get closer, and closer, and closer.

Staring up at the crows you can see they are in a formation.

Squinting your eyes from the light coming from the object, you can see the formation looks like the numeral 80.

As quickly as the birds appeared, they have left you once again.... alone... tortured by the deafening sound of silence.

666 is closed.
                     

Analyse: Das Wort `opensesame` wird per Netcat an den UDP-Port 666 des Ziels gesendet. Der Server antwortet mit einer weiteren narrativen Beschreibung.

Bewertung: **Erfolg!** Die Aktion hat eine Reaktion auf dem Server ausgelöst. Wir erhalten die zweite Flagge (`flag2{c39cd4df8f2e35d20d92c2e44de5f7c6}`). Der Text enthält einen sehr deutlichen Hinweis: Die Krähenformation sieht aus wie die Zahl **80**. Dies deutet stark darauf hin, dass **Port 80 (HTTP)** nun geöffnet wurde.

Empfehlung (Pentester): Führen Sie einen erneuten Nmap-Scan (oder zumindest einen Scan auf Port 80) durch, um zu bestätigen, dass Port 80 jetzt offen ist. Beginnen Sie dann mit der Web-Enumeration auf Port 80. Knacken Sie den MD5-Hash von flag2.
Empfehlung (Admin):** Untersuchen Sie den Mechanismus hinter diesem "Port Knocking" über UDP Port 666. Solche Mechanismen sind oft unsicher, wenn sie nicht sorgfältig implementiert sind.

Knacken des MD5-Hashes von flag2:

Hash: c39cd4df8f2e35d20d92c2e44de5f7c6
Type: md5
Result: Not found.
                     

Analyse: Versuch, den zweiten Hash zu knacken.

Bewertung: Der Hash wird nicht in gängigen Datenbanken gefunden. Er ist möglicherweise nicht relevant oder erfordert Offline-Bruteforce.

Empfehlung (Pentester): Ignorieren Sie den Hash vorerst und konzentrieren Sie sich auf den nun vermutlich offenen Port 80.
Empfehlung (Admin):** Keine Aktion.

Web Enumeration (Port 80)

Nachdem Port 80 durch das UDP-Rätsel geöffnet wurde, untersuchen wir den darauf laufenden Webdienst.

Nikto-Scan gegen Port 80:

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.125
- Nikto v2.5.0
+ Target IP:          192.168.2.125
+ Target Hostname:    192.168.2.125
+ Target Port:        80
+ Start Time:         2023-10-20 22:28:19 (GMT2)
+ Server: OpenBSD httpd 
+ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options 
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ 
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ 8102 requests: 0 error(s) and 2 item(s) reported on remote host
+ End Time:           2023-10-20 22:28:38 (GMT2) (19 seconds)
+ 1 host(s) tested
                     

Analyse: Nikto scannt den nun offenen Port 80.

Bewertung: Identifiziert den Webserver als **OpenBSD httpd**. Dies ist ungewöhnlicher als Apache oder Nginx. Meldet fehlende Security Header. Findet keine weiteren interessanten Verzeichnisse oder Dateien.

Empfehlung (Pentester): Führen Sie Gobuster aus, um nach Dateien zu suchen. Recherchieren Sie nach bekannten Schwachstellen speziell für OpenBSD httpd (abhängig von der genauen Version, die hier nicht ermittelt wurde).
Empfehlung (Admin):** Implementieren Sie Security Header. Halten Sie den OpenBSD httpd aktuell.

Gobuster-Scan gegen Port 80:

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u http://necromancer.vln -x [...] -w "[...]" -b '403,404,301' -e --no-error -k
http://necromancer.vln/index.html           (Status: 200) [Size: 1416]
                     

Analyse: Gobuster sucht nach Verzeichnissen und Dateien.

Bewertung: Findet nur die `index.html`.

Empfehlung (Pentester): Analysieren Sie den Inhalt von `index.html` sorgfältig.
Empfehlung (Admin):** Keine Aktion.

Analyse des Inhalts von `index.html`:

Hours have passed since you first started to follow the crows.
Silence continues to engulf you as you treck towards a mountain range on the horizon.
More times passes and you are now standing in front of a great chasm.
Across the chasm you can see a necromancer standing in the mouth of a cave, staring skyward at the circling crows.
As you step closer to the chasm, a rock dislodges from beneath your feet and falls into the dark depths.
The necromancer looks towards you with hollow eyes which can only be described as death.
He smirks in your direction, and suddenly a bright light momentarily blinds you.
The silence is broken by a blood curdling screech of a thousand birds, followed by the necromancers laughs fading as he decends into the cave!
The crows break their formation, some flying aimlessly in the air; others now motionless upon the ground.
The cave is now protected by a gaseous blue haze, and an organised pile of feathers lay before you.

Image copyright: Chris Maynard 
                     

Analyse: Die `index.html` enthält eine weitere narrative Beschreibung.

Bewertung: Der Text erwähnt eine "organisierte Haufen Federn" (`pile of feathers`) und einen Bild-Copyright-Hinweis auf Chris Maynard. Dies deutet auf ein Bild hin, das analysiert werden muss, möglicherweise `pileoffeathers.jpg`.

Empfehlung (Pentester): Suchen Sie nach dem Bild `pileoffeathers.jpg` auf dem Webserver (z.B. `http://necromancer.vln/pileoffeathers.jpg` oder in einem `/images`-Verzeichnis). Laden Sie es herunter und analysieren Sie es mit Steganographie-Tools (`strings`, `binwalk`, `steghide`).
Empfehlung (Admin):** Keine Aktion.

Analyse der Bilddatei `pileoffeathers.jpg` (Annahme: zuvor heruntergeladen):

┌──(root㉿Cybermaschine)-[~] └─# strings pileoffeathers.jpg -n 10
)http://ns.adobe.com/xap/1.0/
         
%^Ps@MX2d-{ 
feathers.txtUT 
feathers.txtUT

feathers.txtUT
/Wux
                     

Analyse: `strings` wird verwendet, um lesbare Zeichenketten aus der Bilddatei zu extrahieren.

Bewertung: Findet XML-Metadaten von Adobe Photoshop. Interessanter ist der String `feathers.txt`, der darauf hindeutet, dass möglicherweise eine Datei mit diesem Namen im Bild versteckt ist (z.B. in einem ZIP-Archiv).

Empfehlung (Pentester): Verwenden Sie `binwalk -e` oder `foremost`, um eingebettete Dateien aus `pileoffeathers.jpg` zu extrahieren.
Empfehlung (Admin):** Keine Aktion.

Extraktion eingebetteter Dateien mit `binwalk`:

┌──(root㉿Cybermaschine)-[~] └─# binwalk -e pileoffeathers.jpg --run-as=root
DECIMAL       HEXADECIMAL     DESCRIPTION 
--------------------------------------------------------------------------------
0             0x0             JPEG image data, EXIF standard
12            0xC             TIFF image data, little-endian offset of first image directory: 8
36994         0x9082          Zip archive data, at least v2.0 to extract, compressed size: 121, uncompressed size: 125, name: feathers.txt
37267         0x9193          End of Zip archive, footer length: 22
                     

Analyse: `binwalk -e` scannt die Datei nach bekannten Signaturen und extrahiert gefundene eingebettete Dateien.

Bewertung: Erfolg! Binwalk identifiziert und extrahiert ein ZIP-Archiv, das die Datei `feathers.txt` enthält.

Empfehlung (Pentester): Untersuchen Sie das extrahierte Verzeichnis (`_pileoffeathers.jpg.extracted`) und analysieren Sie den Inhalt von `feathers.txt`.
Empfehlung (Admin):** Keine Aktion.

Untersuchung des extrahierten Verzeichnisses und der Datei `feathers.txt`:

┌──(root㉿Cybermaschine)-[~] └─# cd _pileoffeathers.jpg.extracted
┌──(root㉿Cybermaschine)-[~/_pileoffeathers.jpg.extracted] └─# ls -la
total 8
drwxr-xr-x  2 root root      4096 Oct 20 22:34 .
drwxr-xr-x 14 root root      4096 Oct 20 22:34 .. 
-rw-r--r-- 1 root root 295 20. Oct 22:34 9082.zip 
-rw-r--r-- 1 root root 125  9. Mai 2016  feathers.txt 
                     
┌──(root㉿Cybermaschine)-[~/_pileoffeathers.jpg.extracted] └─# cat feathers.txt
ZmxhZzN7WFkM2Y2MmRiN2I5MWMyGI2DEzNzAwMDM5NDYzWZ9IC0gQ3Jvc3MgdGhlIGNoYXNtIGF0IC9hbWFnaWNicmlkZ2VhcHBlYXJzYXR0aGVjaGFzbQ==
┌──(root㉿Cybermaschine)-[~/_pileoffeathers.jpg.extracted] └─# cat feathers.txt | base64 -d
flag3{9ad3f62db7b91c28b68137000394639f}

Cross the chasm at /amagicbridgeappearsatthechasm
                     

Analyse: Das extrahierte Verzeichnis enthält die ZIP-Datei und `feathers.txt`. Der Inhalt von `feathers.txt` ist Base64-kodiert und wird dekodiert.

Bewertung: **Wichtiger Fund!** Die dekodierte Nachricht enthält die dritte Flagge (`flag3{9ad...9f}`) und einen neuen Web-Pfad: `/amagicbridgeappearsatthechasm`.

Empfehlung (Pentester): Flagge notieren. Rufen Sie `http://necromancer.vln/amagicbridgeappearsatthechasm/` auf und untersuchen Sie diesen neuen Bereich.
Empfehlung (Admin):** Keine Aktion.

Analyse des neuen Web-Pfads:

 You cautiously make your way across chasm.
You are standing on a snow covered plateau, surrounded by shear cliffs of ice and stone.
The cave before you is protected by some sort of spell cast by the necromancer.
You reach out to touch the gaseous blue haze, and can feel life being drawn from your soul the closer you get.
Hastily you take a few steps back away from the cave entrance.
There must be a magical item that could protect you from the necromancer's spell.
                     

Analyse: Die Webseite `/amagicbridgeappearsatthechasm/` enthält eine weitere narrative Beschreibung.

Bewertung: Der Text erwähnt ein "magisches Item", das benötigt wird, um die Höhle zu betreten. Dies deutet auf eine weitere Datei oder einen weiteren Hinweis hin.

Empfehlung (Pentester): Führen Sie Gobuster gegen das Verzeichnis `/amagicbridgeappearsatthechasm/` aus, um nach Dateien wie z.B. "talisman" oder "amulet" zu suchen.
Empfehlung (Admin):** Keine Aktion.

Gobuster-Scan des neuen Verzeichnisses:

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u http://necromancer.vln/amagicbridgeappearsatthechasm/ -x [...] -w "[...]" -b '403,404,301' -e --no-error -k
http://necromancer.vln/amagicbridgeappearsatthechasm/talisman             (Status: 200) [Size: 9676] 
http://necromancer.vln/amagicbridgeappearsatthechasm/index.html           (Status: 200) [Size: 755]
                     

Analyse: Gobuster scannt das Verzeichnis `/amagicbridgeappearsatthechasm/`.

Bewertung: Findet `index.html` und eine Datei namens `talisman`. Dies ist wahrscheinlich das gesuchte "magische Item".

Empfehlung (Pentester): Laden Sie die Datei `talisman` herunter (`wget http://.../talisman`) und analysieren Sie sie (z.B. mit `file`, `strings`, GDB).

Analyse der Datei `talisman` mit GDB:

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# gdb talisman
GNU gdb (Debian 13.2-1) 13.2

Reading symbols from talisman...
(No debugging symbols found in talisman)
                     
(gdb) info functions
All defined functions:

Non-debugging symbols:
0x080482d0  _init
0x08048310  printf@plt
0x08048320  __libc_start_main@plt
0x08048330  __isoc99_scanf@plt
0x08048340  __gmon_start__@plt
0x08048350  _start
0x08048380  __x86.get_pc_thunk.bx
0x08048390  deregister_tm_clones
0x080483c0  register_tm_clones
0x08048400  __do_global_dtors_aux
0x08048420  frame_dummy
0x0804844b  unhide
0x0804849d  hide
0x080484f4  myPrintf
0x08048529  wearTalisman
0x08048a13  main
0x08048a37  chantToBreakSpell
0x08049530  __libc_csu_init
0x08049590  __libc_csu_fini
0x08049594  _fini
                    
(gdb) break wearTalisman
Breakpoint 1 at 0x804852d
(gdb) run
Starting program: /home/cyber/Downloads/talisman
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 1, 0x0804852d in wearTalisman ()
                     
(gdb) jump chantToBreakSpell
Continuing at 0x8048a3b.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
You fall to your knees.. weak and weary.
Looking up you can see the spell is still protecting the cave entrance.
The talisman is now almost too hot to touch!
Turning it over you see words now etched into the surface:
flag4{ea50536158db50247e110a6c89fcf3d3}
Chant these words at u31337 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[Inferior 1 (process 6743) exited normally]
                     

Analyse: Die heruntergeladene Datei `talisman` wird mit dem GNU Debugger (GDB) analysiert. Sie ist eine ausführbare Datei. `info functions` listet die Funktionen auf, darunter `wearTalisman` und `chantToBreakSpell`. Ein Breakpoint wird bei `wearTalisman` gesetzt. Das Programm wird gestartet (`run`) und hält am Breakpoint an. Mit `jump chantToBreakSpell` wird der Programmfluss zur Funktion `chantToBreakSpell` umgeleitet.

Bewertung: Das Umleiten des Programmflusses führt zur Ausgabe einer weiteren narrativen Nachricht, der vierten Flagge (`flag4{ea5...d3}`) und einem neuen Hinweis: "Chant these words at u31337". Dies bedeutet, den Hash-Teil der Flagge an den UDP-Port 31337 zu senden.

Empfehlung (Pentester): Knacken Sie den MD5-Hash `ea50536158db50247e110a6c89fcf3d3`. Senden Sie das Ergebnis an UDP Port 31337.
Empfehlung (Admin):** Entfernen Sie solche Binärdateien oder sichern Sie den Zugriff darauf.

Knacken des MD5-Hashes von flag4:

Hash: ea50536158db50247e110a6c89fcf3d3
Type: md5
Result: blackmagic
                     

Analyse: Der Hash aus flag4 wird geknackt.

Bewertung: Das Ergebnis ist `blackmagic`.

Empfehlung (Pentester): Senden Sie "blackmagic" an UDP Port 31337.
Empfehlung (Admin):** Keine Aktion.

Senden des Passworts an UDP Port 31337:

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# echo "blackmagic" | nc 192.168.2.125 -u 31337

As you chant the words, a hissing sound echoes from the ice walls.

The blue aura disappears from the cave entrance.

You enter the cave and see that it is dimly lit by torches; shadows dancing against the rock wall as you descend deeper and deeper into the mountain.

You hear high pitched screeches coming from within the cave, and you start to feel a gentle breeze.

The screeches are getting closer, and with it the breeze begins to turn into an ice cold wind.

Suddenly, you are attacked by a swarm of bats!

You aimlessly thrash at the air in front of you!

The bats continue their relentless attack, until.... silence.

Looking around you see no sign of any bats, and no indication of the struggle which had just occurred.

Looking towards one of the torches, you see something on the cave wall.

You walk closer, and notice a pile of mutilated bats lying on the cave floor.  Above them, a word etched in blood on the wall.

/thenecromancerwillabsorbyoursoul

flag5{0766c36577af58e15545f099a3b15e60}
                     

Analyse: "blackmagic" wird an UDP Port 31337 gesendet. Der Server antwortet.

Bewertung: **Erfolg!** Wir erhalten die fünfte Flagge (`flag5{076...e60}`) und einen neuen Web-Pfad: `/thenecromancerwillabsorbyoursoul`.

Empfehlung (Pentester): Flagge notieren. Rufen Sie `http://necromancer.vln/thenecromancerwillabsorbyoursoul/` auf.
Empfehlung (Admin):** Untersuchen Sie den Dienst, der auf UDP Port 31337 lauscht.

Analyse des neuen Web-Pfads:

 flag6{b1c3ed8f1db4258e4dcb0ce565f6dc03}

You continue to make your way through the cave.

Looking closer at the skull, you can see u161 engraved into the forehead. 
                    

Analyse: Die Webseite `/thenecromancerwillabsorbyoursoul/` wird aufgerufen.

Bewertung: Enthält die sechste Flagge (`flag6{b1c...c03}`) und einen neuen Hinweis: `u161` auf der Stirn eines Schädels. Dies deutet auf **UDP Port 161** hin, den Standardport für **SNMP** (Simple Network Management Protocol).

Empfehlung (Pentester): Führen Sie SNMP-Enumeration gegen UDP Port 161 durch (z.B. mit `snmp-check`, `snmpwalk`). Versuchen Sie gängige Community-Strings wie `public` und `private`.
Empfehlung (Admin):** Sichern Sie SNMP (verwenden Sie SNMPv3, starke Community-Strings, Zugriffsbeschränkung) oder deaktivieren Sie es, wenn nicht benötigt.

Wireless Attack & File Analysis

Wir analysieren eine weitere Bilddatei und knacken ein WPA-Passwort.

(Hinweis: Die Herkunft von `necromancer.jpg` ist im Log unklar, möglicherweise wurde sie über einen der Webpfade gefunden oder ist Teil eines separaten Hinweises.)

┌──(root㉿Cybermaschine)-[~] └─# wget http://necromancer.vln/pics/necromancer.jpg
...
┌──(root㉿Cybermaschine)-[~] └─# file necromancer.jpg
necromancer.jpg: JPEG image data, JFIF standard 1.01...

Analyse: Die Datei `necromancer.jpg` wird heruntergeladen und als JPEG identifiziert.

Bewertung: Vorbereitung zur Analyse.

(Hinweis: Im Log wird die Datei `necromancer` (ohne Endung) mit `bzip2` und `tar` analysiert. Es ist anzunehmen, dass diese Datei irgendwie aus `necromancer.jpg` extrahiert wurde, z.B. mit `binwalk -e` oder `foremost`.)

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# file necromancer
necromancer: bzip2 compressed data, block size = 900k
┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# bzip2 necromancer -d
bzip2: Can't guess original name for necromancer -- using necromancer.out
┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# ls -la
-rw-r--r--   1 cyber cyber     81920 Oct 20 22:57  necromancer.out 
                     
┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# file necromancer.out
necromancer.out: POSIX tar archive (GNU)  
┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# tar -xf necromancer.out
┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# ls -la
-rw-r--r--   1 root  root      80242 May 10  2016   necromancer.cap 
-rw-r--r--   1 cyber cyber     81920 Oct 20 22:57  necromancer.out
                     

Analyse: Eine Datei `necromancer` (extrahiert aus `necromancer.jpg`) wird als `bzip2`-Archiv identifiziert, dekomprimiert zu `necromancer.out`, welches als `tar`-Archiv identifiziert wird. Das Entpacken des Tar-Archivs enthüllt eine Datei `necromancer.cap`.

Bewertung: **Wichtiger Fund!** Die `.cap`-Datei enthält wahrscheinlich einen aufgezeichneten WPA/WPA2-Handshake für ein WLAN-Netzwerk.

Empfehlung (Pentester): Bereinigen Sie die Capture-Datei mit `wpaclean`. Knacken Sie das WPA-Passwort mit `aircrack-ng` und einer Wortliste (z.B. `rockyou.txt`). Das geknackte Passwort könnte für SNMP, SSH oder andere Dienste relevant sein.
Empfehlung (Admin):** Vermeiden Sie es, sensible Daten wie WLAN-Captures in Bildern zu verstecken.

Knacken des WPA-Handshakes:

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# wpaclean clean.cap necromancer.cap
Pwning necromancer.cap (1/1 100%)
Net c4:12:f5:0d:5e:95 community 
Done
                     
┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# aircrack-ng clean.cap -w /usr/share/wordlists/rockyou.txt
                               Aircrack-ng 1.7

      [00:00:01] 51330/10303647 keys tested (50154.97 k/s)

      Time left: 3 minutes, 24 seconds                           0.50%

                           KEY FOUND! [ death2all ]


      Master Key     : 7C F8 5B 00 BC B6 AB ED B0 53 F9 94 2D 4D B7 AC
                       DB FA 53 6F A9 ED D5 68 79 91 84 7B 7E 6E 0F E7

      Transient Key  : 41 55 DD B7 E4 3C 65 9A 18 0B BE A3 B3 C8 9D 7F
                       EE 13 2D 94 3C 3F B7 27 6B 06 53 EB 92 3B 10 A5
                       B0 FD 1B 10 D4 24 3C B9 D6 AC 23 D5 7D 20 B2 34
                       40 3C 29 88 59 A5 91 62 6A 69 9D CD 88 A0 BC 70

      EAPOL HMAC     : F6 E5 E2 12 67 F7 1D DC 08 2B 17 9C 72 42 71 8E
                     

Analyse: Die `.cap`-Datei wird mit `wpaclean` bereinigt. Anschließend wird `aircrack-ng` mit der bereinigten Datei (`clean.cap`) und der `rockyou.txt`-Wortliste verwendet, um das WPA-Passwort zu knacken.

Bewertung: **Erfolg!** Das WPA-Passwort wurde geknackt: `death2all`. Dies ist höchstwahrscheinlich der SNMP Community String (Read-Only), der für den nächsten Schritt benötigt wird.

Empfehlung (Pentester): Verwenden Sie `death2all` als Community String für die SNMP-Enumeration auf UDP Port 161.
Empfehlung (Admin):** Verwenden Sie starke WPA2/WPA3-Passwörter, die nicht in Wortlisten enthalten sind.

SNMP Interaction

Wir nutzen den geknackten WPA-Schlüssel als SNMP-Community-String, um Informationen über UDP Port 161 zu sammeln und zu manipulieren.

SNMP-Enumeration mit `snmp-check`:

┌──(root㉿Cybermaschine)-[~] └─# snmp-check -c death2all 192.168.2.125
snmp-check v1.9 - SNMP enumerator
Copyright (c) 2005-2015 by Matteo Cantoni (www.nothink.org)

[+] Try to connect to 192.168.2.125:161 using SNMPv1 and community 'death2all'

[*] System information:

  Host IP address               : 192.168.2.125
  Hostname                      : Fear the Necromancer!
  Description                   : You stand in front of a door.
  Contact                       : The door is Locked. If you choose to defeat me, the door must be Unlocked.
  Location                      : Locked - death2allrw! 
                     

Analyse: `snmp-check` wird mit dem Community String `death2all` verwendet, um SNMP-Informationen abzufragen.

Bewertung: Erfolg! Der Community String ist korrekt. Die Abfrage liefert Systeminformationen, darunter eine Beschreibung und einen Kontakt. **Sehr wichtig:** Das `Location`-Feld enthält `Locked - death2allrw!`. Dies verrät uns den **Read-Write (RW) Community String:** `death2allrw!`.

Empfehlung (Pentester): Verwenden Sie `snmpwalk` mit `death2all`, um weitere MIB-Werte zu sehen. Verwenden Sie dann `snmpset` mit dem RW-String `death2allrw!`, um den `Location`-Wert (oder einen anderen relevanten Wert) zu ändern, wie im Kontakt-Feld angedeutet ("...the door must be Unlocked.").
Empfehlung (Admin):** **Dringend:** Ändern Sie die SNMP Community Strings zu starken, nicht erratbaren Werten. Verwenden Sie SNMPv3 anstelle von v1/v2c. Beschränken Sie SNMP-Zugriff auf vertrauenswürdige IPs.

Weitere Enumeration mit `snmpwalk`:

┌──(root㉿Cybermaschine)-[~] └─# snmpwalk -c death2all -v 1 192.168.2.125
Created directory: /var/lib/snmp/cert_indexes
iso.3.6.1.2.1.1.1.0 = STRING: "You stand in front of a door."
iso.3.6.1.2.1.1.4.0 = STRING: "The door is Locked. If you choose to defeat me, the door must be Unlocked."
iso.3.6.1.2.1.1.5.0 = STRING: "Fear the Necromancer!"
iso.3.6.1.2.1.1.6.0 = STRING: "Locked - death2allrw!"
End of MIB
                    

Analyse: `snmpwalk` fragt weitere MIB-Werte mit dem Read-Only String ab.

Bewertung: Bestätigt die zuvor gefundenen Informationen. Das relevante Objekt zum Ändern ist `iso.3.6.1.2.1.1.6.0` (sysLocation).

Empfehlung (Pentester): Verwenden Sie `snmpset` mit dem RW-String `death2allrw!`, um den Wert von `iso.3.6.1.2.1.1.6.0` auf "Unlocked" zu setzen.
Empfehlung (Admin):** Siehe vorherige SNMP-Empfehlungen.

Ändern des SNMP-Wertes mit `snmpset`:

┌──(root㉿Cybermaschine)-[~] └─# snmpset -c death2allrw -v 1 192.168.2.125 iso.3.6.1.2.1.1.6.0 s Unlocked
iso.3.6.1.2.1.1.6.0 = STRING: "Unlocked"
                    

Analyse: `snmpset` wird mit dem RW-Community-String `death2allrw` verwendet, um den Wert der OID `iso.3.6.1.2.1.1.6.0` (sysLocation) auf den String "Unlocked" zu setzen.

Bewertung: Erfolg! Der Wert wurde erfolgreich geändert.

Empfehlung (Pentester): Fragen Sie die MIB erneut ab (`snmpwalk`), um die Änderung zu bestätigen und zu sehen, ob neue Informationen oder Flags verfügbar sind.
Empfehlung (Admin):** SNMP-Sicherheit erhöhen!

Erneute Abfrage mit `snmpwalk`:

┌──(root㉿Cybermaschine)-[~] └─# snmpwalk -c death2all -v 1 192.168.2.125
iso.3.6.1.2.1.1.1.0 = STRING: "You stand in front of a door."
iso.3.6.1.2.1.1.4.0 = STRING: "The door is unlocked! You may now enter the Necromancer's lair!"
iso.3.6.1.2.1.1.5.0 = STRING: "Fear the Necromancer!"
iso.3.6.1.2.1.1.6.0 = STRING: "flag7{9e5494108d10bbd5f9e7ae52239546c4} - t22" 
End of MIB
                    

Analyse: `snmpwalk` fragt die MIB erneut ab.

Bewertung: **Erfolg!** Der sysContact (`.1.4.0`) hat sich geändert. Der sysLocation (`.1.6.0`) enthält nun die siebte Flagge (`flag7{9e5...c4}`) und den Hinweis `t22`. `t22` deutet stark auf **Telnet Port 22** hin - ein ungewöhnlicher Port für Telnet, normalerweise SSH.

Empfehlung (Pentester): Flagge notieren. Knacken Sie den Hash `9e5494108d10bbd5f9e7ae52239546c4`. Versuchen Sie, eine Verbindung zu Port 22 herzustellen - wahrscheinlich SSH, nicht Telnet.
Empfehlung (Admin):** SNMP sichern.

Knacken des MD5-Hashes von flag7:

Hash: 9e5494108d10bbd5f9e7ae52239546c4
Type: md5
Result: demonslayer
                    

Analyse: Der Hash aus flag7 wird geknackt.

Bewertung: Das Ergebnis ist `demonslayer`. Dies ist wahrscheinlich ein Benutzername.

Empfehlung (Pentester): Versuchen Sie einen SSH-Login (Port 22) als Benutzer `demonslayer` mit einer Wortliste (`rockyou.txt`).
Empfehlung (Admin):** Keine Aktion.

Initial Access (SSH)

Wir verwenden den über SNMP gefundenen Benutzernamen `demonslayer` und versuchen, das Passwort mittels Bruteforce via SSH zu finden.

SSH-Bruteforce mit Hydra für Benutzer `demonslayer`:

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# hydra -l demonslayer -P /usr/share/wordlists/rockyou.txt ssh://192.168.2.125:22 -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway). 

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-10-20 23:48:45
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344527 login tries (l:1/p:14344527), ~224134 tries per task
[DATA] attacking ssh://192.168.2.125:22/

[22][ssh] host: 192.168.2.125   login: demonslayer   password: 12345678

1 of 1 target successfully completed, 1 valid password found
                    

Analyse: Hydra versucht, das Passwort für den SSH-Benutzer `demonslayer` mit `rockyou.txt` zu erraten.

Bewertung: Erfolg! Das Passwort `12345678` wurde gefunden. Ein sehr schwaches Passwort.

Empfehlung (Pentester): Loggen Sie sich mit `demonslayer`/`12345678` per SSH ein.
Empfehlung (Admin):** Starke Passwortrichtlinien durchsetzen. Brute-Force-Schutz.

SSH-Login als `demonslayer`:

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# ssh demonslayer@192.168.2.125
demonslayer@192.168.2.125's password: 12345678

          .                                                      .
        .n                   .                 .                  n.
  .   .dP                  dP                   9b                 9b.    .
 4    qXb         .       dX                     Xb       .        dXp     t
dX.    9Xb      .dXb    __                         __    dXb.     dXP     .Xb
9XXb._       _.dXXXXb dXXXXbo.                 .odXXXXb dXXXXb._       _.dXXP
 9XXXXXXXXXXXXXXXXXXXVXXXXXXXXo.           .oXXXXXXXXVXXXXXXXXXXXXXXXXXXXP
  `9XXXXXXXXXXXXXXXXXXXXX'~   ~`8b   d8'~   ~`XXXXXXXXXXXXXXXXXXXXXP'
    `9XXXXXXXXXXXP' `9XX'          `98v8P'          `XXP' `9XXXXXXXXXXXP'
        ~       9X.          .db|db.          .XP       ~
                        )b.  .dbo.dP'`v'`9b.odb.  .dX(
                      ,dXXXXXXXXXXXb     dXXXXXXXXXXXb.
                     dXXXXXXXXXXXP'   .   `9XXXXXXXXXXXb
                    dXXXXXXXXXXXXb   d|b   dXXXXXXXXXXXXb
                    9XXb'   `XXXXXb.dX|Xb.dXXXXX'   `dXXP
                     `'      9XXXXXX(   )XXXXXXP      `'
                              XXXX X.`v'.X XXXX
                              XP^X'`b   d'`X^XX
                              X. 9  `   '  P )X
                              `b  `       '  d'
                               `             '
                               THE NECROMANCER!
                                 by  @xerubus

$ 
                    

Analyse: Erfolgreicher SSH-Login als `demonslayer`. Ein ASCII-Art-Banner wird angezeigt.

Bewertung: Initial Access erfolgreich! Wir haben eine Shell als `demonslayer`. Das System scheint OpenBSD zu sein (basierend auf dem Prompt `$`).

Empfehlung (Pentester): Beginnen Sie die lokale Enumeration auf dem OpenBSD-System. Beachten Sie Unterschiede zu Linux-Befehlen.
Empfehlung (Admin):** Passwort ändern. SSH härten.

Local Enumeration

Wir untersuchen das OpenBSD-System als Benutzer `demonslayer`.

Suche nach SUID-Binaries:

$ find / -type f -perm -4000 -ls 2>/dev/null
 51992   52 -r-sr-xr-x    3 root     bin         25208 Feb 26  2016 /usr/bin/chfn
 51992   52 -r-sr-xr-x    3 root     bin         25208 Feb 26  2016 /usr/bin/chpass 
 51992   52 -r-sr-xr-x    3 root     bin         25208 Feb 26  2016 /usr/bin/chsh
 52016   48 -r-sr-xr-x    1 root     bin         24376 Feb 26  2016 /usr/bin/doas 
 52079   56 -r-sr-sr-x    1 root     daemon      27752 Feb 26  2016 /usr/bin/lpr
 52080   48 -r-sr-sr-x    1 root     daemon      24120 Feb 26  2016 /usr/bin/lprm
 52104   40 -r-sr-xr-x    1 root     bin         19232 Feb 26  2016 /usr/bin/passwd
 52168   40 -r-sr-xr-x    1 root     bin         19104 Feb 26  2016 /usr/bin/su
 52257   24 -r-sr-xr-x    1 root     bin         10640 Feb 26  2016 /usr/libexec/lockspool
 52275  896 -r-sr-xr-x    1 root     bin        436824 Feb 26  2016 /usr/libexec/ssh-keysign
 87322  256 -r-sr-xr-x    1 root     bin        129911 Feb 26  2016 /usr/local/bin/sudo 
 26048   48 -r-sr-sr-x    2 root     authpf      23504 Feb 26  2016 /usr/sbin/authpf
 26048   48 -r-sr-sr-x    2 root     authpf      23504 Feb 26  2016 /usr/sbin/authpf-noip
 26127  276 -r-sr-x---    1 root     network    140744 Feb 26  2016 /usr/sbin/pppd 
 26174   64 -r-sr-xr-x    2 root     bin         32560 Feb 26  2016 /usr/sbin/traceroute
 26174   64 -r-sr-xr-x    2 root     bin         32560 Feb 26  2016 /usr/sbin/traceroute6
 86688 5184 -rwsr-xr-x    1 root     wheel     2636878 Feb 26  2016 /usr/X11R6/bin/Xorg
 25809  448 -r-sr-xr-x    1 root     bin        202224 Feb 26  2016 /sbin/ping
 25810  448 -r-sr-xr-x    1 root     bin        205744 Feb 26  2016 /sbin/ping6
 25817  512 -r-sr-x---    1 root     operator   238840 Feb 26  2016 /sbin/shutdown 
                    

Analyse: Sucht nach Dateien mit gesetztem SUID-Bit.

Bewertung: Findet typische OpenBSD SUID-Binaries (`chpass`, `doas`, `su`, `passwd`) sowie `/usr/local/bin/sudo`. Die Präsenz von sowohl `doas` als auch `sudo` ist interessant.

Empfehlung (Pentester): Überprüfen Sie die Konfiguration von `doas` (`/etc/doas.conf`) und `sudo` (`/etc/sudoers` oder `/usr/local/etc/sudoers`), um zu sehen, ob `demonslayer` erhöhte Rechte hat (`doas -l`, `sudo -l`).
Empfehlung (Admin):** Minimieren Sie SUID-Binaries. Konfigurieren Sie `doas` oder `sudo` restriktiv.

Überprüfung der Benutzer-ID und `sudo`-Rechte:

$ id
uid=1000(demonslayer) gid=1000(demonslayer) groups=1000(demonslayer)
$ sudo -l
Password: 12345678
Sorry, user demonslayer may not run sudo on thenecromancer.
                    

Analyse: `id` bestätigt den Benutzer. `sudo -l` wird ausgeführt.

Bewertung: Der Benutzer `demonslayer` hat keine `sudo`-Rechte.

Empfehlung (Pentester): Prüfen Sie `doas -l`. Untersuchen Sie das Home-Verzeichnis.
Empfehlung (Admin):** Keine Aktion.

Untersuchung des Home-Verzeichnisses und Lesen der Flagge:

$ ls -la
total 40
drwxr-xr-x  3 demonslayer  demonslayer  512 Jun 23  2016 .
drwxr-xr-x  3 root         wheel        512 May 11  2016 ..
-rw-r--r--  1 demonslayer  demonslayer   87 May 11  2016 .Xdefaults
-rw-r--r--  1 demonslayer  demonslayer  773 May 11  2016 .cshrc
-rw-r--r--  1 demonslayer  demonslayer  103 May 11  2016 .cvsrc
-rw-r--r--  1 demonslayer  demonslayer  359 May 11  2016 .login
-rw-r--r--  1 demonslayer  demonslayer  175 May 11  2016 .mailrc
-rw-r--r--  1 demonslayer  demonslayer  218 May 11  2016 .profile
drwx------  2 demonslayer  demonslayer  512 May 11  2016 .ssh 
-rw-r--r--  1 demonslayer  demonslayer  706 May 11  2016 flag8.txt 
                     
$ cat flag8.txt
You enter the Necromancer's Lair!

Defend yourself!  Counter attack the Necromancer's spells at u777! 
                     

Analyse: Das Home-Verzeichnis wird aufgelistet. Die Datei `flag8.txt` wird gefunden und gelesen.

Bewertung: Enthält die achte Flagge (implizit, nicht als String gezeigt) und einen Hinweis: Sende etwas an UDP Port 777, um den Zauber des Nekromanten zu kontern.

Empfehlung (Pentester): Es müssen wahrscheinlich Rätsel gelöst werden, die über UDP Port 777 interagieren. Die nächsten Schritte im Log scheinen sich darauf zu beziehen.
Empfehlung (Admin):** Keine Aktion.

Lösen der Rätsel über UDP Port 777 (im Log nur Antworten gezeigt):

Who did Johann Faust VIII make a deal with?  
# echo "Mephistopheles" | nc -u 192.168.2.125 777
flag9{713587e17e796209d1df4c9c2c2d2966} ... Who is tricked into passing the Ninth Gate?
# echo "Hedge" | nc -u 192.168.2.125 777
flag10{8dc6486d2c63cafcdc6efbba2be98ee4} ... A great flash of light ... vile ...

Analyse: Es wird eine Interaktion mit UDP Port 777 durchgeführt. Das System stellt Fragen, die korrekt beantwortet werden müssen (Antworten wahrscheinlich durch OSINT gefunden). Jede richtige Antwort enthüllt die nächste Flagge und die nächste Frage.

Bewertung: Erfolgreiches Lösen des Rätsels. Flaggen 9 und 10 wurden erhalten.

Empfehlung (Pentester): Flags notieren. Der letzte Hinweis erwähnt eine Phiole (`vile`), was auf den nächsten Schritt hindeutet.

Proof of Concept (Privilege Escalation via Sudo)

Dieser Abschnitt beschreibt die Privilegienerweiterung durch Ausnutzung einer spezifischen `sudo`-Regel.

Kurzbeschreibung: Nach dem Lösen der Rätsel und dem Erhalt der Phiole (symbolisch) überprüfen wir erneut die `sudo`-Rechte und finden einen Eintrag, der es erlaubt, `/bin/cat /root/flag11.txt` als Root ohne Passwort auszuführen. Dies ist zwar keine vollständige Shell, aber ein direkter Weg zur Root-Flagge.

Voraussetzungen: Shell-Zugriff als Benutzer `demonslayer`.

Schritt 1: Erneute Überprüfung der `sudo`-Rechte

(Hinweis: Der erste `sudo -l`-Versuch schlug fehl, aber nach dem Lösen der Rätsel sind die Rechte möglicherweise anders oder waren zuvor falsch interpretiert worden).

$ sudo -l
Matching Defaults entries for demonslayer on thenecromancer:
    env_keep+="FTPMODE PKG_CACHE PKG_PATH SM_PATH SSH_AUTH_SOCK" 

User demonslayer may run the following commands on thenecromancer:
    (ALL) NPASSWD: /bin/cat /root/flag11.txt
                    

Analyse: Erneute Ausführung von `sudo -l`.

Bewertung: **Kritischer Fund!** Der Benutzer `demonslayer` darf **spezifisch** den Befehl `/bin/cat /root/flag11.txt` als jeder Benutzer (`ALL`) ohne Passwort (`NPASSWD`) ausführen.

Empfehlung (Pentester): Führen Sie den erlaubten `sudo`-Befehl aus, um die Root-Flagge zu lesen. Dies ist der Weg zur "Privilegienerweiterung" in diesem Kontext, auch wenn er keine Shell gibt.
Empfehlung (Admin):** Seien Sie extrem vorsichtig bei der Vergabe von `sudo`-Rechten, selbst für spezifische Befehle. Das Lesen von Dateien als Root kann oft zur Eskalation führen (z.B. Lesen von `/etc/shadow` oder privaten Schlüsseln). Vermeiden Sie `NOPASSWD`.

Schritt 2: Ausführung des erlaubten `sudo`-Befehls

$ sudo /bin/cat /root/flag11.txt
Suddenly you feel dizzy and fall to the ground!

                   flag11{42c35828545b926e79a36493938ab1b1}


"  xerubus (@xerubus) - www.mogozobo.com  "
                    

Analyse: Der exakte Befehl, der in der `sudoers`-Datei erlaubt ist, wird ausgeführt.

Bewertung: **Erfolg!** Der Befehl wird als Root ausgeführt und gibt den Inhalt der Datei `/root/flag11.txt` aus, welche die Root-Flagge (`flag11{42c...1b1}`) enthält.

Empfehlung (Pentester): Root-Flagge notieren. Test abgeschlossen.
Empfehlung (Admin):** Korrigieren Sie die `sudoers`-Regel.

Risikobewertung:** Das Hauptrisiko entstand durch die Kombination aus einem durch Bruteforce erratbaren Passwort und einer unsicheren `sudo`-Regel, die das Lesen einer Root-Datei erlaubte. Die vorgeschalteten Rätsel (UDP Port Knocking, Steganographie, OSINT, SNMP) dienten dazu, den Weg zum initialen Zugriff und zur finalen Eskalation zu verschleiern, änderten aber nichts an den Kernschwachstellen.

Empfehlungen (Zusammenfassung):**

  • **Dringend:** Korrigieren Sie die unsichere `sudoers`-Regel. Vergeben Sie keine Rechte zum Lesen von Root-Dateien.
  • Verwenden Sie starke, einzigartige Passwörter für SSH und implementieren Sie Brute-Force-Schutz.
  • Deaktivieren Sie unnötige UDP-Dienste oder sichern Sie diese (z.B. SNMP mit v3 und starken Communities).
  • Entfernen Sie sensible Hinweise aus Webseiten und Bildern.
  • Aktualisieren Sie das Betriebssystem (OpenBSD) und alle Dienste.

Flags

nc -u 666 (Flag 1)
flag1{e6078b9b1aac915d11b9fd59791030bf}
nc -u 666 (Flag 2)
flag2{c39cd4df8f2e35d20d92c2e44de5f7c6}
Base64 from feathers.txt (Flag 3)
flag3{9ad3f62db7b91c28b68137000394639f}
GDB on talisman (Flag 4)
flag4{ea50536158db50247e110a6c89fcf3d3}
nc -u 31337 (Flag 5)
flag5{0766c36577af58e15545f099a3b15e60}
Webpage /thenecromancer... (Flag 6)
flag6{b1c3ed8f1db4258e4dcb0ce565f6dc03}
snmpset/snmpwalk (Flag 7)
flag7{9e5494108d10bbd5f9e7ae52239546c4}
cat /home/demonslayer/flag8.txt
FLAG8_WERT (Nicht im Log extrahiert)
nc -u 777 (Riddle 1 - Flag 9)
flag9{713587e17e796209d1df4c9c2c2d2966}
nc -u 777 (Riddle 2 - Flag 10)
flag10{8dc6486d2c63cafcdc6efbba2be98ee4}
sudo cat /root/flag11.txt
flag11{42c35828545b926e79a36493938ab1b1}